package com.caiyouxi.user.model;

import java.io.Serializable;
import java.util.Date;

/**
 * Created by Administrator on 2017/11/13.
 */
public class UserAuthCodeBean  implements Serializable {

    /**
     * 主键ID
     */
    private Integer id;

    /**
     * 接收安全的对象类型。有以下值之一：PHONE；EMAIL。
     */
    private String target_type;

    /**
     * 接收安全码的对象。一般为手机号码或邮件地址。
     */
    private String target;

    /**
     * 关联的用户编号。如果为空，一般表示该用户还没有创建，正在进行注册过程。
     */
    private Integer user_id;
    /**
     * 该安全码的用途。有以下值之一：
     * REG：注册；
     * RESET_PWD：重置密码；
     * BIND：绑定；
     * UNBIND：取消绑定；
     * LOGIN：登录；
     * 等。
     * 根据业务需要可以扩充定义。每个代码都对应一个具体业务用途。
     */
    private String action;

    /**
     * 安全码。
     * 不同 target_type 的验证码的生成规则会不一样，生成的验证码的长度也会不一样。
     * 比如手机短信验证一般4位数字即可，邮件验证码会是较长的一段随机字符串（如 uuid）。
     */
    private String code;

    /**
     * 该安全码的状态。有以下值之一：
     * SENT：发送成功；
     * CONSUMED：已使用；
     * ABORTED：被作废；
     * UNSENT：未发生成功；
     */
    private String status;

    /**
     * 过期时间
     */
    private Date expire_time;

    /**
     * 创建时间
     */
    private java.util.Date create_time;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getTarget_type() {
        return target_type;
    }

    public void setTarget_type(String target_type) {
        this.target_type = target_type;
    }

    public String getTarget() {
        return target;
    }

    public void setTarget(String target) {
        this.target = target;
    }

    public Integer getUser_id() {
        return user_id;
    }

    public void setUser_id(Integer user_id) {
        this.user_id = user_id;
    }

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getExpire_time() {
        return expire_time;
    }

    public void setExpire_time(Date expire_time) {
        this.expire_time = expire_time;
    }

    public Date getCreate_time() {
        return create_time;
    }

    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }
}
